package cn.csc.module.pay.dal.event;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.context.ApplicationEvent;

import javax.validation.constraints.NotEmpty;
import java.math.BigInteger;

/**
 * 见证宝冻结充值撤销事件
 * 执行异步操作。示例：
 * @Async(NOTIFY_THREAD_POOL_TASK_EXECUTOR)
 * @EventListener(value = JzbOrderRechargeCancelEvent.class)
 * public void rechargeCancel(JzbOrderRechargeCancelEvent event){}
 * @author liuchuang
 * @version 1.0
 * @date 2024/1/19 15:08
 * @modify
 */
@Setter
@Getter
@Accessors(chain = true)
public class JzbOrderRechargeCancelEvent extends ApplicationEvent {


    public JzbOrderRechargeCancelEvent(Object source){
        super(source);
    }

    /**
     * 商户编号
     */
    private BigInteger merchantId;
    /**
     * 应用编号
     */
    private BigInteger appId;
    /**
     * 用户 IP
     */
    @NotEmpty(message = "用户 IP 不能为空")
    private String userIp;

    /**
     * 退款描述
     */
    private String reason;

    // ========== 订单相关字段 ==========

    /**
     * 见证宝订单号
     */
    private BigInteger jzbOrderId;

    /**
     * 支付单号
     */
    private BigInteger payOrderId;


    /**
     * 商户交易订单号
     */
    private String merchantOrderId;

    /**
     * 商户退款订单号，用于关联售后订单ID，TODO 暂时未投入使用
     */
    private String merchantRefundNo;


    /**
     * 退款金额，单位：分
     */
    private Integer amount;


}
